This invention relates in general to digital data processing and more specifically to a system for using utilities, protocols and other resources that are not directly provided to a processor in a computer system.
A typical computer system uses a “motherboard” that includes a processor, memory, and supporting hardware resources such as bus management, co-processing, etc. A basic input/output operating system, configuration routines or utilities and other low-level code is usually provided on a read-only memory (ROM), flash-programmable memory or other non-transient memory. The processor on the motherboard can make use of other off-motherboard resources and devices by using communication links supported via buses, ports, etc. For example, a processor can use an external hard disk drive via an Integrated Development Environment (IDE), Small Computer System Interface (SCSI), Universal Synchronous Bus (USB), IEEE 1394 (Firewire), or other bus.
When a computer system is first powered-up, many functions must take place to put the computer into an operational stage. These functions are commonly referred to as “boot-up,” “booting,” “bootstrapping,” “booting up,” etc. During boot-up, the amount of resources, such as memory, resident code or instructions, etc., that a processor has available to it are minimal. Many of the external devices may not be useable because the proper drivers, utilities, applications or other necessary programs have not been loaded, yet.
On the other hand, some boot-up situations, especially where an external computer system is managing the boot-up of a target computer system, require the processor to perform important functions such as communicating with external devices over a network as soon as possible. These functions may not be available to the processor unless, for example, the appropriate “protocol stack” for communication has been loaded from a floppy disk. Naturally, the loading of a specific protocol stack, itself, can require communicating with an external storage or transfer device or link, and the protocol stack will need to occupy storage space.
Thus, it is desirable to improve the ability of a processor to use resources, especially during boot-up or shortly after power-on.